import requests
import json


def geocode(address,key="9df9a46a9a045c9bb332e3fc0019464e",city=None,batch=None,sig=None,callback=None):
    """获取高德API的地理编码
     地理编码/逆地理编码 API 是通过 HTTP/HTTPS 协议访问远程服务的接口，提供结构化地址与经纬度之间的相互转化的能力。
    结构化地址的定义： 
    首先，地址肯定是一串字符，内含国家、省份、城市、区县、城镇、乡村、街道、门牌号码、屋邨、大厦等建筑物名称。
    按照由大区域名称到小区域名称组合在一起的字符。一个有效的地址应该是独一无二的。注意：针对大陆、港、澳地区的地理编码转换时可以将国家信息选择性的忽略，但省、市、城镇等级别的地址构成是不能忽略的。
    暂时不支持返回台湾省的详细地址信息。"""

    url = "https://restapi.amap.com/v3/geocode/geo?parameters"
    params = {
        "address":address,
        "key":key,
        "city":city,
        "batch":batch,
        "sig":sig,
        "callback":callback,
    }
    response = requests.get(url,params=params)
    results = response.json()
    return results



def around(location,types,key="9df9a46a9a045c9bb332e3fc0019464e",sortrule="weight"):
    """获取高德API的搜索POI——周边搜索
    搜索服务API是一类简单的HTTP接口，提供多种查询POI信息的能力，其中包括关键字搜索、周边搜索、多边形搜索、ID查询四种筛选机制。
    使用API前您需先申请Key，若无高德地图API账号需要先申请账号。
    另外，无论您指定多少个type，每次请求最多返回1000个POI信息。
    若场景需要获取更可能多的POI；建议您不要在type之中指定过多的类别，而是分多次请求从而得到更加准确的结果。"""

    around_url = "https://restapi.amap.com/v3/place/around"
    params = {
        "location":location,
        "types":types,
        "key":key,
        "sortrule":sortrule,
    }
    r = requests.get(around_url,params=params)
    results = r.json()
    return results



def weatherInfo(city,key="9df9a46a9a045c9bb332e3fc0019464e",extensions=None,output=None):
    """获取高德API的天气查询功能
    天气查询是一个简单的HTTP接口，根据用户输入的adcode，查询目标区域当前/未来的天气情况。"""
    url = "https://restapi.amap.com/v3/weather/weatherInfo?parameters"
    params = {
        "city":city,
        "key":key,
        "extensions":extensions,
        "output":json
    }
    response = requests.get(url,params=params)
    results = response.json()
    return results